Python小技巧

您所在的位置:网站首页 python 接收参数 Python小技巧

Python小技巧

2023-08-19 03:14| 来源: 网络整理| 查看: 265

对于我们自己写的Python脚本,往往将参数写死在脚本中,然后通过IDE或者python命令一键运行。

对于一些临时型的应用场景,这样做既方便又快捷;但是,当我们面临一些需要频繁变更参数的复杂应用场景时,这样的脚本就会显得非常笨拙。

为了让我们的脚本能够适应多变的环境,我们需要编写一小段代码来让我们的脚本能够读取来自外部的参数。

方法一、sys.argv[]

该方法较为简单,只需两行代码就可以使用,适合于简单场景。

import sys # 导入模块 text = sys.argv[1] # 获得外部参数 print(text) # 打印

其中argv是一个列表,接收了所有的外部参数。

索引0指向脚本名,索引1及之后的索引依次指向后面的参数(默认为字符串类型)。

方法二、argparse 极简版

该模块是Python标准库中推荐的命令行解析模块。如果你想让你的程序变得更加实用且优雅,不妨就试试它。

新建一个test.py文件,导入模块并新建一个ArgumentParser对象:

import argparse parser = argparse.ArgumentParser()

调用这个对象的add_argument()方法来添加参数:

parser.add_argument("text")

通过这个对象来解析参数,将解析的结果返回给一个变量,然后使用:

args = parser.parse_args() print(args.text)

这样就实现了一个最简单的外部传参过程,可以通过下面这行命令来查看结果:

python test.py hello 基础版

如果只是这样,就和第一种方法没什么区别。为了展现argparse的威力,需要考虑一种更为复杂的场景:比如,脚本提供多个参数,并且任何人都能很容易的理解每个参数的传入位置以及传参方式。

首先,我们可以通过一些参数来扩充ArgumentParser对象,比如description:

import argparse parser = argparse.ArgumentParser(description="程序描述") # 注意:这里的文本需要进行额外配置才能支持换行符

这样,当我们执行python test.py -h时,就会显示出更为丰富的结果。

如果我们希望参数是一些可选项,并且有一些默认值的话,我们可以这样设置:

parser.add_argument('-f', '--foo', default='fff')

这样一来,就可以通过python test.py -f f1或者python test.py --foo f1进行传参,如果没有传参,则使用默认值fff。

此时,在脚本中,可以通过下面的代码获取参数:

args = parser.parse_args() print(args.foo)

需要注意的是,如果长选项字符串(如,--foo)和短选项字符串同时存在(如,-f),则默认通过长选项字符串(foo)来访问参数;如果只有短选项字符串,则可以通过短选项字符串(f)来访问参数。

此外,还可以通过参数metavar和help来使帮助内容变得更加丰富,比如:

parser.add_argument('-t', '--text', default='some message', metavar='message', help='give some message to show')

这样在使用python test.py -h命令之后,就会显示:

optional arguments: -h, --help show this help message and exit -t , --text give some message to show 参考链接

[1] https://docs.python.org/zh-cn/3/library/argparse.html?highlight=argparse#module-argparse

[2] https://blog.csdn.net/weixin_41654912/article/details/81110702

[3] https://blog.csdn.net/CHCH998/article/details/107176779/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3